home *** CD-ROM | disk | FTP | other *** search
/ PC-SIG: World of Games / PC-SIG World of Games (CDRM1080710) (1993).iso / ENT / DISK0035.ZIP / DROIDS.BAS < prev    next >
BASIC Source File  |  1983-02-12  |  7KB  |  172 lines

  1. 10 KEY OFF:CLS
  2. 20 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
  3. 30 PRINT"░┌───────────────────────────────────┐░"
  4. 40 PRINT"░│                                   │░"
  5. 50 PRINT"░│            2043-A.BAS             │░"
  6. 60 PRINT"░│              DROIDS               │░"
  7. 70 PRINT"░│                                   │░"
  8. 80 PRINT"░│                                   │░"
  9. 90 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF  │░"
  10. 100 PRINT"░│      ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄      │░"
  11. 110 PRINT"░│        █   █   █ █     █   █      │░"
  12. 120 PRINT"░│        █   █▄▄▄█ █     █   █      │░"
  13. 130 PRINT"░│        █   █     █     █   █      │░"
  14. 140 PRINT"░│      ▄▄█▄▄ █     █▄▄▄▄ █▄▄▄█      │░"
  15. 150 PRINT"░│                                   │░"
  16. 160 PRINT"░│      International PC Owners      │░"
  17. 170 PRINT"░│                                   │░"
  18. 180 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
  19. 190 PRINT"░│                                   │░"
  20. 200 PRINT"░└───────────────────────────────────┘░"
  21. 210 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
  22. 220 PRINT
  23. 230 PRINT "       PRESS ANY KEY TO CONTINUE
  24. 240 A$=INKEY$: IF A$="" THEN 240
  25. 250 CLS
  26. 1000 REM DROIDS GAME
  27. 1010 SAMPLE$="NO"
  28. 1020 GOTO 1040
  29. 1030 SAMPLE$="YES"
  30. 1040 BL$="                                       "
  31. 1050 DEF SEG=64:POKE 23,64:REM CAPITAL LETTERS
  32. 1060 ORE=254
  33. 1070 DIM PL$(4),CH(4)
  34. 1080 CH(1)=65:CH(2)=66:CH(3)=67:CH(4)=68
  35. 1090 SCREEN 0,1,0,0:WIDTH 40:LOCATE ,,0:GOSUB 1350
  36. 1100 GOSUB 1700
  37. 1110 GOSUB 1850
  38. 1120 NP=1:NP1=0
  39. 1130 GOSUB 2290
  40. 1140 GOSUB 2030
  41. 1150 GOSUB 2200
  42. 1160 NP1=NP1+1:NP1=NP1 MOD NPLAY:NP=NP1+1
  43. 1170 GOTO 1130
  44. 1180 REM GAMEBOARD
  45. 1190 CLS:COLOR 14,0,0
  46. 1200 X$=CHR$(ORE)
  47. 1210 X15$=X$
  48. 1220 FOR I=1 TO 14:X15$=X15$+X$:NEXT
  49. 1230 FOR J=3 TO 12:LOCATE J,5:PRINT X15$:NEXT
  50. 1240 RETURN
  51. 1250 REM COMPASS
  52. 1260 YC=8:XC=30
  53. 1270 LOCATE YC,XC-3:PRINT "W";CHR$(196);CHR$(196);CHR$(197);CHR$(196);CHR$(196);"E"
  54. 1280 LOCATE YC-3,XC:PRINT "N"
  55. 1290 LOCATE YC-2,XC-3:PRINT "NW ";CHR$(179);" NE"
  56. 1300 LOCATE YC+2,XC-3:PRINT "SW ";CHR$(179);" SE"
  57. 1310 LOCATE YC-1,XC-1:PRINT "\";CHR$(179);"/"
  58. 1320 LOCATE YC+1,XC-1:PRINT "/";CHR$(179);"\"
  59. 1330 LOCATE YC+3,XC:PRINT "S"
  60. 1340 RETURN
  61. 1350 REM INSTRUCTIONS
  62. 1360 COLOR 7,0:CLS
  63. 1370 LOCATE 5,12:PRINT "WELCOME TO DROIDS"
  64. 1380 PRINT :PRINT "   DO YOU WANT INSTRUCTIONS? (Y OR N)"
  65. 1390 RESP$=INKEY$:IF RESP$="" THEN GOTO 1390
  66. 1400 IF RESP$="N" OR RESP$="n" THEN RETURN
  67. 1410 CLS
  68. 1420 PRINT :PRINT "DROIDS ARE USED TO HUNT FOR MINERALS"
  69. 1430 PRINT "ON THE PLANET MERCURY.  THE HUMANS ON"
  70. 1440 PRINT "MERCURY PLAY THIS GAME WITH FOUR DROIDS"
  71. 1450 PRINT "ON A FIELD WHICH CONTAINS VALUABLE ORE!"
  72. 1460 PRINT :PRINT "THE VALUABLE ORE LOOKS LIKE THIS: ";:COLOR 14:PRINT CHR$(ORE):COLOR 7
  73. 1470 PRINT :PRINT "DO YOU WANT TO SEE THE GAME BOARD (Y/N)?";
  74. 1480 RESP$=INKEY$:IF RESP$="" THEN GOTO 1480
  75. 1490 IF RESP$="Y" OR RESP$="y" THEN GOSUB 1180
  76. 1500 COLOR 7:PRINT:PRINT "THE DROIDS ARE  NAMED ";CHR$(CH(1));", ";CHR$(CH(2));", ";CHR$(CH(3));" AND ";CHR$(CH(4));"."
  77. 1510 PRINT "GOING IN TURN, THE PLAYERS (UP TO 4)"
  78. 1520 PRINT "MOVE ANY DROID WHICH CAN COLLECT ORE."
  79. 1530 PRINT "YOU GET ONE POINT FOR EACH ";:COLOR 14:PRINT CHR$(ORE);:COLOR 7:PRINT " (PIECE"
  80. 1540 PRINT "OF ORE) AND HIGH SCORE WINS.
  81. 1550 PRINT "DROIDS GO NORTH, SOUTH, EAST, WEST, OR"
  82. 1560 PRINT "DIAGONALLY, BUT ONLY IN A STRAIGHT LINE"
  83. 1570 PRINT "AND ONLY ONTO SQUARES WITH ORE."
  84. 1580 PRINT :PRINT "ANY PLAYER MAY MOVE ANY DROID."
  85. 1590 PRINT :PRINT "PRESS ANY KEY TO CONTINUE."
  86. 1600 RESP$=INKEY$:IF RESP$="" THEN GOTO 1600
  87. 1610 CLS:GOSUB 1250
  88. 1620 PRINT :PRINT :PRINT "TO MOVE A DROID TYPE ITS SYMBOL AND"
  89. 1630 PRINT "DIRECTION TO GO (N,NE,E,SE,S,SW,W,NW)."
  90. 1640 PRINT :PRINT "THE DROID WILL GO THAT WAY UNTIL IT"
  91. 1650 PRINT "RUNS OUT OF ORE. "
  92. 1660 PRINT :PRINT "YOU GET ONE POINT FOR EACH ";:COLOR 14:PRINT CHR$(ORE);:PRINT ".":COLOR 7
  93. 1670 PRINT :PRINT "PRESS ANY KEY TO CONTINUE."
  94. 1680 RESP$=INKEY$:IF RESP$="" THEN GOTO 1680
  95. 1690 RETURN
  96. 1700 REM GET PLAYER NAMES PL$(NP)
  97. 1710 CLS
  98. 1720 PRINT "HOW MANY PLAYERS? (1 TO 4)"
  99. 1730 RESP$=INKEY$:IF RESP$="" THEN GOTO 1730
  100. 1740 IF RESP$<"1" OR RESP$>"4" THEN PRINT "PLEASE TYPE 1,2,3, OR 4":GOTO 1730
  101. 1750 NPLAY=VAL(RESP$)
  102. 1760 PRINT NPLAY;"PLAYERS, RIGHT? (Y OR N)"
  103. 1770 RESP$=INKEY$:IF RESP$="" THEN GOTO 1770
  104. 1780 IF RESP$="N" OR RESP$="n" THEN GOTO 1720
  105. 1790 PRINT "NOW, ENTER THE NAMES OF THE PLAYERS."
  106. 1800 FOR I=1 TO NPLAY
  107. 1810 PRINT "TYPE THE NAME FOR PLAYER ";I;" AND PRESS ENTER KEY.":INPUT "",PL$(I)
  108. 1820 PRINT "WELCOME ";PL$(I);"!"
  109. 1830 NEXT
  110. 1840 RETURN
  111. 1850 REM SETUP PLAYING ENVIRONMENT
  112. 1860 GOSUB 1180
  113. 1870 GOSUB 1250
  114. 1880 COLOR 1
  115. 1890 RANDOMIZE VAL(MID$(TIME$,7,2)+MID$(TIME$,4,2))
  116. 1900 FOR J=1 TO 4
  117. 1910 IX(J)=INT(15*RND)+5
  118. 1920 IY(J)=INT(10*RND)+3
  119. 1930 CHT=SCREEN (IY(J),IX(J)):IF CHT<>ORE THEN 1910
  120. 1940 LOCATE IY(J),IX(J):PRINT CHR$(CH(J))
  121. 1950 NEXT
  122. 1960 COLOR 7:LOCATE 14,5
  123. 1970 PRINT "SCORE     PLAYER'S NAME"
  124. 1980 FOR J=1 TO NPLAY
  125. 1990 SC(J)=0
  126. 2000 LOCATE 14+J,5:PRINT SC(J),PL$(J)
  127. 2010 NEXT
  128. 2020  RETURN
  129. 2030 REM PLAYER NUMBER NP'S MOVE
  130. 2040 LOCATE 20,1:FOR I=1 TO 3:PRINT BL$:NEXT
  131. 2050 LOCATE 20,1:PRINT PL$(NP);", TYPE A DROID'S SYMBOL ":INPUT "AND PRESS ENTER ",DJ$
  132. 2060 IF DJ$=CHR$(CH(1)) OR DJ$=CHR$(CH(2)) OR DJ$=CHR$(CH(3)) OR DJ$=CHR$(CH(4)) THEN GOTO 2070 ELSE GOTO 2040
  133. 2070 LOCATE 22,1:INPUT "TYPE A DIRECTION AND PRESS ENTER ",DIR$
  134. 2080 IF DIR$="N" THEN DY=-1:DX=0:GOTO 2170
  135. 2090 IF DIR$="NE" THEN DY=-1:DX=1:GOTO 2170
  136. 2100 IF DIR$="E" THEN DY=0:DX=1:GOTO 2170
  137. 2110 IF DIR$="SE" THEN DY=1:DX=1:GOTO 2170
  138. 2120 IF DIR$="S" THEN DY=1:DX=0:GOTO 2170
  139. 2130 IF DIR$="SW" THEN DY=1:DX=-1:GOTO 2170
  140. 2140 IF DIR$="W" THEN DY=0:DX=-1:GOTO 2170
  141. 2150 IF DIR$="NW" THEN DY=-1:DX=-1:GOTO 2170
  142. 2160 GOTO 2070
  143. 2170 FOR J=1 TO 4:IF CHR$(CH(J))=DJ$ THEN DN=J
  144. 2180 NEXT
  145. 2190 RETURN
  146. 2200 REM GAME MOVE FOR PLAYER NUMBER NP WITH DROID SYMBOL DJ$ AND DIRECTION DX,DY AND SCORE SC(NP) DROID NUMBER DN
  147. 2210 CT=SCREEN (IY(DN)+DY,IX(DN)+DX)
  148. 2220 IF CT<>ORE THEN RETURN
  149. 2230 LOCATE IY(DN),IX(DN):PRINT CHR$(0)
  150. 2240 IY(DN)=IY(DN)+DY:IX(DN)=IX(DN)+DX
  151. 2250 SC(NP)=SC(NP)+1:LOCATE 14+NP,5:PRINT SC(NP)
  152. 2260 LOCATE IY(DN),IX(DN):COLOR 1:PRINT CHR$(CH(DN)):COLOR 7
  153. 2270 PLAY "O1 T200 G"
  154. 2280 GOTO 2210
  155. 2290 REM CHECK ENDGAME
  156. 2300 STP$="YES"
  157. 2310 FOR J=1 TO 4
  158. 2320 FOR JX=-1 TO 1
  159. 2330 FOR JY=-1 TO 1
  160. 2340 CT=SCREEN (IY(J)+JY,IX(J)+JX)
  161. 2350 IF CT=ORE THEN STP$="NO"
  162. 2360 NEXT :NEXT :NEXT
  163. 2370 IF STP$="NO" THEN RETURN
  164. 2380 LOCATE 17+6,5:PRINT "GAME IS OVER"
  165. 2390 PRINT "PLAY AGAIN? (Y OR N)"
  166. 2400 RESP$=INKEY$:IF RESP$="" THEN  GOTO 2400
  167. 2410 IF RESP$="Y" OR RESP$="y" THEN  GOTO 1090
  168. 2420 IF SAMPLE$="YES" THEN CHAIN "SAMPLES",1000 ELSE END
  169. 2430 GOTO 1030
  170. 400
  171. 2410 IF RESP$="Y" OR RESP$="y" THEN  GOTO 1090
  172. 2420 IF SAMPLE$=